<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Cwp\V20180228\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeMalwareTimingScanSetting response structure.
 *
 * @method integer getCheckPattern() Obtain Detection mode: 0 - full disk detection; 1 - rapid detection
 * @method void setCheckPattern(integer $CheckPattern) Set Detection mode: 0 - full disk detection; 1 - rapid detection
 * @method string getStartTime() Obtain Detection cycle; start time
 * @method void setStartTime(string $StartTime) Set Detection cycle; start time
 * @method string getEndTime() Obtain Detection cycle; timeout end time
 * @method void setEndTime(string $EndTime) Set Detection cycle; timeout end time
 * @method integer getIsGlobal() Obtain Whether all servers: 1 - all; 2 - specified
 * @method void setIsGlobal(integer $IsGlobal) Set Whether all servers: 1 - all; 2 - specified
 * @method array getQuuidList() Obtain When you select servers, host quuid is required.
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setQuuidList(array $QuuidList) Set When you select servers, host quuid is required.
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getMonitoringPattern() Obtain Monitoring mode: 0 - standard; 1 - deep
 * @method void setMonitoringPattern(integer $MonitoringPattern) Set Monitoring mode: 0 - standard; 1 - deep
 * @method integer getCycle() Obtain Cycle: 1 - daily
 * @method void setCycle(integer $Cycle) Set Cycle: 1 - daily
 * @method integer getEnableScan() Obtain Scheduled detection switch: 0 - disable; 1 - enable
 * @method void setEnableScan(integer $EnableScan) Set Scheduled detection switch: 0 - disable; 1 - enable
 * @method integer getId() Obtain Unique ID
 * @method void setId(integer $Id) Set Unique ID
 * @method integer getRealTimeMonitoring() Obtain Real-time monitoring: 0 - disable 1 - enable
 * @method void setRealTimeMonitoring(integer $RealTimeMonitoring) Set Real-time monitoring: 0 - disable 1 - enable
 * @method integer getAutoIsolation() Obtain Whether to isolate automatically: 1 - yes; 0 - no
 * @method void setAutoIsolation(integer $AutoIsolation) Set Whether to isolate automatically: 1 - yes; 0 - no
 * @method integer getClickTimeout() Obtain One-click scan timeout duration, such as 1800 seconds
 * @method void setClickTimeout(integer $ClickTimeout) Set One-click scan timeout duration, such as 1800 seconds
 * @method integer getKillProcess() Obtain Whether to terminate the process: 1: terminate; 0: not terminate. It is effective only if automatic isolation is enabled.
 * @method void setKillProcess(integer $KillProcess) Set Whether to terminate the process: 1: terminate; 0: not terminate. It is effective only if automatic isolation is enabled.
 * @method integer getEngineType() Obtain 1 - standard mode (only critical and high-risk are reported.); 2 - enhanced mode (critical, high-risk, and medium-risk are reported.); 3 - strict mode (critical, high-risk, medium-risk, low-risk, and prompt are reported.)
 * @method void setEngineType(integer $EngineType) Set 1 - standard mode (only critical and high-risk are reported.); 2 - enhanced mode (critical, high-risk, and medium-risk are reported.); 3 - strict mode (critical, high-risk, medium-risk, low-risk, and prompt are reported.)
 * @method integer getEnableInspiredEngine() Obtain Heuristic Engine: 0 - OFF, 1 - ON
 * @method void setEnableInspiredEngine(integer $EnableInspiredEngine) Set Heuristic Engine: 0 - OFF, 1 - ON
 * @method integer getEnableMemShellScan() Obtain Whether to enable malicious process killing [0: Not Enabled; 1: Enabled]
 * @method void setEnableMemShellScan(integer $EnableMemShellScan) Set Whether to enable malicious process killing [0: Not Enabled; 1: Enabled]
 * @method integer getProtectMode() Obtain Protection mode: 0 - standard; 1 - enhanced
 * @method void setProtectMode(integer $ProtectMode) Set Protection mode: 0 - standard; 1 - enhanced
 * @method integer getProtectFileScope() Obtain Scope of detection: 0 - malicious files other than scripts; 1 - all malicious files
 * @method void setProtectFileScope(integer $ProtectFileScope) Set Scope of detection: 0 - malicious files other than scripts; 1 - all malicious files
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeMalwareTimingScanSettingResponse extends AbstractModel
{
    /**
     * @var integer Detection mode: 0 - full disk detection; 1 - rapid detection
     */
    public $CheckPattern;

    /**
     * @var string Detection cycle; start time
     */
    public $StartTime;

    /**
     * @var string Detection cycle; timeout end time
     */
    public $EndTime;

    /**
     * @var integer Whether all servers: 1 - all; 2 - specified
     */
    public $IsGlobal;

    /**
     * @var array When you select servers, host quuid is required.
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $QuuidList;

    /**
     * @var integer Monitoring mode: 0 - standard; 1 - deep
     */
    public $MonitoringPattern;

    /**
     * @var integer Cycle: 1 - daily
     */
    public $Cycle;

    /**
     * @var integer Scheduled detection switch: 0 - disable; 1 - enable
     */
    public $EnableScan;

    /**
     * @var integer Unique ID
     */
    public $Id;

    /**
     * @var integer Real-time monitoring: 0 - disable 1 - enable
     */
    public $RealTimeMonitoring;

    /**
     * @var integer Whether to isolate automatically: 1 - yes; 0 - no
     */
    public $AutoIsolation;

    /**
     * @var integer One-click scan timeout duration, such as 1800 seconds
     */
    public $ClickTimeout;

    /**
     * @var integer Whether to terminate the process: 1: terminate; 0: not terminate. It is effective only if automatic isolation is enabled.
     */
    public $KillProcess;

    /**
     * @var integer 1 - standard mode (only critical and high-risk are reported.); 2 - enhanced mode (critical, high-risk, and medium-risk are reported.); 3 - strict mode (critical, high-risk, medium-risk, low-risk, and prompt are reported.)
     */
    public $EngineType;

    /**
     * @var integer Heuristic Engine: 0 - OFF, 1 - ON
     */
    public $EnableInspiredEngine;

    /**
     * @var integer Whether to enable malicious process killing [0: Not Enabled; 1: Enabled]
     */
    public $EnableMemShellScan;

    /**
     * @var integer Protection mode: 0 - standard; 1 - enhanced
     */
    public $ProtectMode;

    /**
     * @var integer Scope of detection: 0 - malicious files other than scripts; 1 - all malicious files
     */
    public $ProtectFileScope;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param integer $CheckPattern Detection mode: 0 - full disk detection; 1 - rapid detection
     * @param string $StartTime Detection cycle; start time
     * @param string $EndTime Detection cycle; timeout end time
     * @param integer $IsGlobal Whether all servers: 1 - all; 2 - specified
     * @param array $QuuidList When you select servers, host quuid is required.
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $MonitoringPattern Monitoring mode: 0 - standard; 1 - deep
     * @param integer $Cycle Cycle: 1 - daily
     * @param integer $EnableScan Scheduled detection switch: 0 - disable; 1 - enable
     * @param integer $Id Unique ID
     * @param integer $RealTimeMonitoring Real-time monitoring: 0 - disable 1 - enable
     * @param integer $AutoIsolation Whether to isolate automatically: 1 - yes; 0 - no
     * @param integer $ClickTimeout One-click scan timeout duration, such as 1800 seconds
     * @param integer $KillProcess Whether to terminate the process: 1: terminate; 0: not terminate. It is effective only if automatic isolation is enabled.
     * @param integer $EngineType 1 - standard mode (only critical and high-risk are reported.); 2 - enhanced mode (critical, high-risk, and medium-risk are reported.); 3 - strict mode (critical, high-risk, medium-risk, low-risk, and prompt are reported.)
     * @param integer $EnableInspiredEngine Heuristic Engine: 0 - OFF, 1 - ON
     * @param integer $EnableMemShellScan Whether to enable malicious process killing [0: Not Enabled; 1: Enabled]
     * @param integer $ProtectMode Protection mode: 0 - standard; 1 - enhanced
     * @param integer $ProtectFileScope Scope of detection: 0 - malicious files other than scripts; 1 - all malicious files
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("CheckPattern",$param) and $param["CheckPattern"] !== null) {
            $this->CheckPattern = $param["CheckPattern"];
        }

        if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) {
            $this->StartTime = $param["StartTime"];
        }

        if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) {
            $this->EndTime = $param["EndTime"];
        }

        if (array_key_exists("IsGlobal",$param) and $param["IsGlobal"] !== null) {
            $this->IsGlobal = $param["IsGlobal"];
        }

        if (array_key_exists("QuuidList",$param) and $param["QuuidList"] !== null) {
            $this->QuuidList = $param["QuuidList"];
        }

        if (array_key_exists("MonitoringPattern",$param) and $param["MonitoringPattern"] !== null) {
            $this->MonitoringPattern = $param["MonitoringPattern"];
        }

        if (array_key_exists("Cycle",$param) and $param["Cycle"] !== null) {
            $this->Cycle = $param["Cycle"];
        }

        if (array_key_exists("EnableScan",$param) and $param["EnableScan"] !== null) {
            $this->EnableScan = $param["EnableScan"];
        }

        if (array_key_exists("Id",$param) and $param["Id"] !== null) {
            $this->Id = $param["Id"];
        }

        if (array_key_exists("RealTimeMonitoring",$param) and $param["RealTimeMonitoring"] !== null) {
            $this->RealTimeMonitoring = $param["RealTimeMonitoring"];
        }

        if (array_key_exists("AutoIsolation",$param) and $param["AutoIsolation"] !== null) {
            $this->AutoIsolation = $param["AutoIsolation"];
        }

        if (array_key_exists("ClickTimeout",$param) and $param["ClickTimeout"] !== null) {
            $this->ClickTimeout = $param["ClickTimeout"];
        }

        if (array_key_exists("KillProcess",$param) and $param["KillProcess"] !== null) {
            $this->KillProcess = $param["KillProcess"];
        }

        if (array_key_exists("EngineType",$param) and $param["EngineType"] !== null) {
            $this->EngineType = $param["EngineType"];
        }

        if (array_key_exists("EnableInspiredEngine",$param) and $param["EnableInspiredEngine"] !== null) {
            $this->EnableInspiredEngine = $param["EnableInspiredEngine"];
        }

        if (array_key_exists("EnableMemShellScan",$param) and $param["EnableMemShellScan"] !== null) {
            $this->EnableMemShellScan = $param["EnableMemShellScan"];
        }

        if (array_key_exists("ProtectMode",$param) and $param["ProtectMode"] !== null) {
            $this->ProtectMode = $param["ProtectMode"];
        }

        if (array_key_exists("ProtectFileScope",$param) and $param["ProtectFileScope"] !== null) {
            $this->ProtectFileScope = $param["ProtectFileScope"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
